package com.sy.service;

import com.sy.dto.PageBean;
import com.sy.entity.CheckHome;
import com.sy.entity.Homework;
import com.sy.entity.StudentHome;
import com.sy.entity.Teacher;
import com.sy.vo.StudentHomeVo;
import com.sy.vo.StudentHomeworkUpdateVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author:fma
 * @Date: 2021/10/12 11:17
 */
public interface StudentHomeService {
    /**
     * 得到所有的作业状态
     * @param
     * @return 全部的作业信息
     */
    List<StudentHome> getHomesState(Integer startLimit,Integer endLimit);

    /**
     * 得到当前学生的所有的作业状态
     * @param  sno 学生学号
     * @param  pageNo 当前页码
     * @param  pageNum 当前显示条数
     * @return 当前学生的作业信息
     */
    PageBean<StudentHome> getHomeStateBySno(Integer sno , Integer pageNo, Integer pageNum);

    /**
     * 根据条件分页查询作业信息
     * @param studentHomeVo 作业状态模型
     * @return 根据条件查询出的作业信息的分页结果
     */
    PageBean<StudentHome> getStatusByConditions(StudentHomeVo studentHomeVo);

    /**条件查询作业的状态信息，作业的标题或发布时间来搜索作业状态信息
     * @param  sno 学生学号
     * @return 得到的该学生全部作业信息
     */
    List<StudentHome> getStatusBySno(Integer sno);

    /**
     * 范富强
     * <p>
     * 删除指定id的作业
     *
     * @param tno 发布作业老师教师序号
     * @param title 发布作业的标题中的内容
     * @param pageNum  每页显示的数量
     * @param pageNo 页码
     * @return 根据条件查询出的作业信息的分页结果
     */
    PageBean<CheckHome> getHomeWorksByConditions3(Integer tno, String title, Integer pageNo, Integer pageNum);

    /**
     * 范富强
     * <p>
     * 删除指定id的作业
     *
     * @param limit 限制只能看到我发布的作业
     * @param pageNum  每页显示的数量
     * @param pageNo 页码
     * @return 根据条件查询出的作业信息的分页结果
     */
    PageBean<CheckHome> getHomeWorksByConditions4( String limit, Integer pageNo, Integer pageNum,String title);

    /**
     * cxl
     *学生提交作业
     * @param studentHomeworkUpdateVo
     * @return
     */
    Boolean updateStudentHomework(StudentHomeworkUpdateVo studentHomeworkUpdateVo);

    /**
     * cxl
     * 删除之前提价的作业
     * @param hid
     * @param sno
     * @return
     */
    Integer deleteOriginalHomework(Integer hid,Integer sno);
    /**
     * @Author zhf
     * 根据hid删除学生作业表中作业
     * @param limit,title
     * @return
     */

    List<CheckHome>getStudentHomeWorksByTitle(String limit, String title,Integer pageNo,Integer pageNum );

    /**
     * 获取某老师学生作业总数
     * @param limit
     * @param title
     * @return
     */
    Integer getStuHomeNum(String limit,String title);
}
